import java.util.Scanner;

public class Task_5_1_4 {
    /*
    https://stepik.org/lesson/1246037/step/4?unit=1259855

    У вас есть переменная n которая содержит входные пользовательские данные.
    n - (0 < n < 100) - количество голов драконьей стаи.
    На планете обитают драконы, и сила драконьей стаи зависит от количества голов у каждого дракона.
    Однако, чтобы максимально увеличить силу стаи, необходимо распределить головы между драконами так, чтобы их произведение было максимальным.
    Напишите код, который по заданному количеству голов драконьей стаи n определит максимальную силу этой стаи,
    учитывая, что каждый дракон должен иметь одинаковое количество голов.
    Результат записать в переменную result.

    Важно!
    Для максимальной силы стаи нужно распределить головы так, чтобы произведение было максимальным.
    Если количество голов меньше или равно 2, то максимальная сила равна количеству голов.
    В остальных случаях, разбейте количество голов на множители 3 и, если останется одна голова, добавьте один множитель 2.

    Возможные подсказки, которые могут вам помочь в поиске решения:
    Разбейте количество голов на множители 3 и учтите остаток от деления.
    Если количество голов меньше или равно 2, максимальная сила стаи равна количеству голов.
    В зависимости от остатка от деления на 3, определите количество троек и одну или две головы в остатке.
    Максимальная сила стаи будет равна произведению всех множителей (троек и, возможно, двойки).
    Убедитесь, что ваш алгоритм корректно обрабатывает случаи, когда количество голов равно 0, 1 или 2.

    Sample Input 1:
    6
    Sample Output 1:
    9
    Sample Input 2:
    8
    Sample Output 2:
    18
    Sample Input 3:
    13
    Sample Output 3:
    108
    Sample Input 4:
    10
    Sample Output 4:
    36
     */

    public static void main(String[] args) {
        int n = readInput();
        int result = 0;
        result = calculateMaxForce(n);

        System.out.println(result);
    }

    public static int calculateMaxForce(int n) {
        if (n <= 2)
            return n; // Если голов меньше или равно 2, возвращаем n

        int maxForce = 1; // Инициализация максимальной силы
        while (n > 4) { // Пока количество голов больше 4, разделяем на множители 3
            maxForce *= 3;
            n -= 3;
        }
        // Умножаем оставшиеся головы (1, 2 или 4) на максимальную силу
        maxForce *= n;

        return maxForce;
    }

    public static int readInput() {
        Scanner scanner = new Scanner(System.in);
        return scanner.nextInt();
    }
}